package com.papercutting.platform.dto.response;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 剪纸文化响应信息
 */
@Data
public class CultureResponse implements Serializable {
    
    private static final long serialVersionUID = 1L;
    
    /**
     * ID
     */
    private Long id;
    
    /**
     * 标题
     */
    private String title;
    
    /**
     * 副标题
     */
    private String subtitle;
    
    /**
     * 封面图片
     */
    private String coverImage;
    
    /**
     * 简介
     */
    private String summary;
    
    /**
     * 详细内容
     */
    private String content;
    
    /**
     * 分类 1-历史文化 2-技法介绍 3-作品欣赏 4-文化内涵
     */
    private Integer category;
    
    /**
     * 分类文本
     */
    private String categoryText;
    
    /**
     * 标签，逗号分隔
     */
    private String tags;
    
    /**
     * 浏览量
     */
    private Integer viewCount;
    
    /**
     * 点赞量
     */
    private Integer likeCount;
    
    /**
     * 收藏量
     */
    private Integer favoriteCount;
    
    /**
     * 分享量
     */
    private Integer shareCount;
    
    /**
     * 排序号
     */
    private Integer sortOrder;
    
    /**
     * 状态 0-草稿 1-已发布 2-已下架
     */
    private Integer status;
    
    /**
     * 状态文本
     */
    private String statusText;
    
    /**
     * 是否推荐
     */
    private Boolean isRecommend;
    
    /**
     * 是否置顶
     */
    private Boolean isTop;
    
    /**
     * 创建者ID
     */
    private Long creatorId;
    
    /**
     * 创建者名称
     */
    private String creatorName;
    
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    
    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
    
    /**
     * 设置分类文本
     */
    public void setCategory(Integer category) {
        this.category = category;
        if (category != null) {
            switch (category) {
                case 1:
                    this.categoryText = "历史文化";
                    break;
                case 2:
                    this.categoryText = "技法介绍";
                    break;
                case 3:
                    this.categoryText = "作品欣赏";
                    break;
                case 4:
                    this.categoryText = "文化内涵";
                    break;
                default:
                    this.categoryText = "未知分类";
                    break;
            }
        }
    }
    
    /**
     * 设置状态文本
     */
    public void setStatus(Integer status) {
        this.status = status;
        if (status != null) {
            switch (status) {
                case 0:
                    this.statusText = "草稿";
                    break;
                case 1:
                    this.statusText = "已发布";
                    break;
                case 2:
                    this.statusText = "已下架";
                    break;
                default:
                    this.statusText = "未知状态";
                    break;
            }
        }
    }
}